; ==========
; Local aliases ; 
; -----------
; Time interval between STARTING and BEGINNING a game
; (time in which people !join)
alias poker.join.pause return 5
; -----------
; Do not edit below ;
; ==========
on *:text:*:#:{ 
  var %t = $left($1,1),%1 = $right($1,-1)
  if (%t !isalnum) {
  }
}
alias haddtok { 
  if ($hget($1)) { 
    hadd $1 $2 $addtok($hget($1,$2),$3,$4)
  }
}
alias hremtok {
  if ($hgeT($1,$2)) { 
    hadd $1 $2 $remtok($hget($1,$2),$3,1,$4)
  }
}
alias _pstart {
  if (!$hget(poker)) {
    hmake poker 
    create_deck
    timerpoker.join.pause 1 $poker.join.pause deal_cards
    ; TEMP
    hadd -s poker players Pass Dan
    ; /TEMP
  }
}
alias create_deck {
  if ($hget(poker)) {
    var %s  = 1,%suits = d h c s,%cards = 2 3 4 5 6 7 8 9 10 J Q K A,%deck
    while ($gettok(%suits,%s,32)) { 
      var %c = 1,%suit = $v1 
      while ($gettok(%cards,%c,32)) {
        var %card = $v1 $+ %suit,%deck = %deck %card
        inc %c
      }
      inc %s
    }
    hadd poker deck %deck
  }
}
alias -l deck return $hget(poker,deck)
alias -l players return $hget(poker,players)
alias -l current return $hget(poker,currentturn)
alias -l next.player {  
  if ($findtok($players,$1,1,32)) {
    var %pos = $v1 
    if (%pos == $numtok($players,32)) return $gettok($players,1,32)
    else return $gettok($players,$calc(%pos + 1),32)
  }
  if (!$1) return $gettok($players,1,32)
}
alias deal_cards { 
  if ($numtok($players,32) > 1) {
    var %n = 1
    while ($gettok($players,%n,32)) {
      var %player = $v1
      var %c1 = $gettok($deck,$r(1,$numtok($deck,32)),32)
      hremtok poker deck %c1 32
      var %c2 = $gettok($deck,$r(1,$numtok($deck,32)),32)
      hremtok poker deck %c2 32
      hadd -s poker $+(%player,.hand) %c1 %c2
      echo -a player: %player ; cards: %c1 %c2    
      inc %n
    }
    echo -a Finished dealing cards! $next.player is up!
  }
  else echo -a .amsg Error: Not enough players!
}
